/* ==================================================================   
 * Created [2009-4-27 下午11:32:55] by Jon.King 
 * ==================================================================  
 * TSS 
 * ================================================================== 
 * mailTo:jinpujun@hotmail.com
 * Copyright (c) Jon.King, 2009-2012 
 * ================================================================== 
*/

package com.jinhe.tss.core.cachepool.proxy;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/** 
 * <p> ProxyUtil.java </p> 
 * 
 * @author Jon.King 2007-1-5
 */

public class ProxyUtil {
    /**
     * 获取对象所有的接口，包括其父类的接口，已经父类的父类的。。。
     * @param clazz
     * @return
     */
    @SuppressWarnings("unchecked")
    public static Class[] getInterfaces(Class clazz){
        List interfaces = new ArrayList();
        Class superClazz = clazz;  
        
        while(superClazz != Object.class){
            interfaces.addAll(Arrays.asList(superClazz.getInterfaces()));
            superClazz = superClazz.getSuperclass();
        }
        Class[] classes = new Class[interfaces.size()];
        for(int i = 0; i < interfaces.size(); i++){
            classes[i] = (Class) interfaces.get(i);
        }
        return classes;
    }
    
    public static int getArgsNum(Object[] args){
        return args == null ? -1 : args.length;
    }
}

